home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 2 / Gold Medal Software Volume 2 (Gold Medal) (1994).iso / utils / dac231.arj / DAC.DOC next >
Text File  |  1994-01-06  |  50KB  |  1,068 lines

  1.  
  2.         ╒════════════════════════════════════════════╕
  3.         │                     dAC                    │
  4.         │               Version 2.31.0               │
  5.         │                                            │
  6.         │  Copyright (C) 1990-1994 FM de Monasterio  │
  7.         │   Licensed Material. All rights reserved   │
  8.         ╘════════════════════════════════════════════╛
  9.  
  10.    CONTENTS
  11.             1.  SUMMARY
  12.             2.  REGISTRATION
  13.             3.  GENERAL INFORMATION
  14.             4.  INSTALLATION & USAGE
  15.             5.  INSTALLATION IN UPPER MEMORY
  16.             6.  BASIC TECHNICAL INFORMATION
  17.             7.  OPERATION REQUIREMENTS & CONFLICTS
  18.             8.  COPYRIGHT & LICENSE INFORMATION
  19.             9.  DISTRIBUTION INFORMATION
  20.  
  21.  
  22.    1.  SUMMARY
  23.  
  24.    dAC is a DOS memory-resident alarm clock that displays the time at the DOS
  25.    prompt when in video text mode. The user can specify the screen attribute,
  26.    position, and format of the display; a hotkey for toggling the display off
  27.    or on; and an alarm time and associated bell parameters.
  28.  
  29.    The clock is enabled only while DOS is waiting for command-line input (DOS
  30.    prompt); the hotkey can be used to override the DOS-prompt toggled status.
  31.    The resident operation can be changed on the fly by executing dAC with new
  32.    parameters from the DOS prompt (or batch file) or via the DOS enviroment.
  33.  
  34.    The dAC resident can also include a tiny, additional module for poking the
  35.    current date in the keyboard buffer so as to appear at the cursor position
  36.    as if it had been entered by the user, if the hotkey were pressed when the
  37.    <Scroll Lock> key is engaged.  The resident automatically becomes inactive
  38.    in BIOS/VESA graphics modes, including WINDOWS, and active again once text
  39.    mode is resumed. The default time and date formats and the unit separators
  40.    are selected from the current country DOS information data; these data can
  41.    be modified by the user.
  42.  
  43.    The program requires MS-DOS version 3 or higher (or a compatible operating
  44.    system) and a Real Time Clock compatible with the IBM AT-standard. It does
  45.    not interfere with WINDOWS or with any other application in graphics mode.
  46.    See DAC.NEW for a description of what is new in the current version.
  47.  
  48.  
  49.  
  50.    2. REGISTRATION
  51.  
  52.    This software is user-supported; the present release, although lacking the
  53.    options marked by asterisks below, is a complete program. You may test the
  54.    release for (in)compatibilities with your system, but after the testing is
  55.    completed you are requested to order a registered copy of the full release
  56.    of the software from the address at the end of this documentation.
  57.  
  58.    If you would rather use this unregistered copy, consider making a donation
  59.    to the Children's Hospital of Washington DC, for indigent children in need
  60.    of medical care.  Every year in the USA, infant mortality claims the lives
  61.    of tens of thousands of children before their first year of life, and most
  62.    of them come from families below poverty level...  Please send to the same
  63.    address a check payable to the "PATIENT CARE FUND, CHILDREN'S HOSPITAL" on
  64.    the obverse, and marked "For Deposit Only" on the reverse.  Donations will
  65.    be sent to Children's Hospital.  Please identify the program for which you
  66.    are making the donation.
  67.  
  68.       +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  69.        DAC.REG contains a form needed to register the Software
  70.       +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  71.  
  72.    See the final part of this documentation for information on the Licensing,
  73.    Distribution, and Limited Warranty of this software.
  74.  
  75.  
  76.  
  77.    3.  GENERAL INFORMATION
  78.  
  79.    This is a DOS-based program which, after its loading, remains installed in
  80.    memory until it is unloaded or the machine is rebooted (terminate-and-stay
  81.    resident).
  82.  
  83.    dAC displays the current time on the screen if the video is in a text mode
  84.    (standard BIOS or VESA video modes), color or monochrome, and while DOS is
  85.    waiting for command-line input at the DOS prompt. The user can specify the
  86.    screen position, the video attributes, and the time format of the display;
  87.    a hotkey combination for toggling the display on or off; and an alarm time
  88.    and associated bell parameters can also be specified by the user.
  89.  
  90.    The clock display is mediated by the system timer tick interrupt, which is
  91.    a service triggered about every 55 milliseconds.  To avoid unnecessary use
  92.    of the time slices, the resident uses only 1 out of 4 slices to update the
  93.    time display, if this is needed.  Further, the clock display processing is
  94.    enabled only while DOS is waiting for command-line input (DOS prompt), not
  95.    only to preserve the screen contents of a foreground application, but also
  96.    to avoid potential interferences with disk(ette) operations, some of which
  97.    are system-timer dependent. If desired, the hotkey can be used to override
  98.    the DOS-prompt toggling, to allow the foreground display of the clock.
  99.  
  100.    A number of time and date stamp services are also available. International
  101.    support is provided for the time and date default formats, as well as unit
  102.    separators, based on the current DOS country information.
  103.  
  104.    Optionally, the dAC resident can include an additional 170-byte module for
  105.    poking the current date in the keyboard buffer, so to appear at the cursor
  106.    position as if it had been entered by the user, if the hotkey were pressed
  107.    when the <Scroll Lock> key is engaged.  When this key is enganged, the dAC
  108.    hotkey does toggle the clock display or or off.
  109.  
  110.    Most functions can be enabled or disabled independently.  The resident can
  111.    be updated on the fly by executing the program with new parameters, and it
  112.    requires less than 0.7 KB of memory. The program can selfload its resident
  113.    into a block of the upper memory area via an extended memory manager, with
  114.    or without MS-DOS 5+.  The user can specify a minimum upper memory address
  115.    to select or avoid a given upper memory region.
  116.  
  117.    If enabled, the dAC alarm is sounded whether at the command line of DOS or
  118.    not, i.e., independently of the DOS-prompt toggling of the dAC display. In
  119.    addition to preserving the screen of foreground applications, the toggling
  120.    is important to avoid a potential interference with disk(ette) operations,
  121.    some which are time dependent. In those cases where a clock display may be
  122.    required during a foreground operation, the hotkey can be used to override
  123.    the DOS-prompt toggling.
  124.  
  125.    Program messages can be redirected via the commands '>' and '>>' of DOS.
  126.  
  127.  
  128.    CPU VERSIONS
  129.  
  130.    The program is written in assembly language; each version consists of four
  131.    processor-type releases (086, 268, 386 and 486) in which the code has been
  132.    optimized for the CPU types of the 80x86 processor family.  This is needed
  133.    since the x86 processors differ markedly in instruction execution time and
  134.    the incorporation of a memory cache in some CPU types affects such time by
  135.    influencing the speed of instruction fetching and of memory access.  A 486
  136.    release should be used with a 586 CPU (Pentium) to minimize degradation of
  137.    performance vis-á-vis code alignment.
  138.  
  139.    In addition to standard (086) assembly language instructions, the 286, 386
  140.    and 486 releases of the program also use 286-, 386- or 486-specific opcode
  141.    instructions in "real" mode (which is the native mode for 086 processors).
  142.    The type and degree of code optimization vary with the CPU type, and yield
  143.    relatively small differences in the resident size, which is less than 1000
  144.    bytes.
  145.  
  146.  
  147.    REQUIREMENTS
  148.  
  149.    The program requires MS-DOS version 3 or later, or compatible DOS system,
  150.    and an IBM-compatible SVGA, VGA, EGA, MCGA/CGA, or MDA video adapter or a
  151.    HERCULES video card.
  152.  
  153.    The time is read from the battery-powered Real Time Clock (RTC) which is
  154.    present in AT-type or compatible PCs, along with nonvolatile CMOS memory
  155.    (such as the Motorola MC146818 chip).  dAC tests for the presence of the
  156.    RTC, and will not operate in machines lacking such a device.
  157.  
  158.  
  159.    SAFETY MEASURES
  160.  
  161.    Each time it is executed, the program verifies its code integrity through
  162.    a number of cyclic redundancy checks (CRCs). Program execution is aborted
  163.    if any check were to fail as such a failure indicates code corruption and
  164.    the program should not be used for your own protection.
  165.  
  166.    The executable program is distributed as a fully encrypted and compressed
  167.    EXE-type file in order to reduce the possibility of code tampering.
  168.  
  169.    NOTE    --------------------------------------------------------------------
  170.     Because both encryption and compression change the code sequences to
  171.     different values, it cannot be excluded that these processess might,
  172.     by chance, yield an encrypted data sequence which triggers a warning
  173.     from antiviral utilities that merely check disk-stored files against
  174.     a list of code 'signatures' or instructions. Though all distribution
  175.     diskettes are scanned with one such utility to avoid the possibility
  176.         of spurious warnings, the changing nature of these 'signature' lists
  177.         makes this exclusion difficult.
  178.  
  179.     If using these utilities, check the registered distribution diskette
  180.     before installing the programs in your hard disk, and please contact
  181.     the vendor (see below) if a spurious warning were triggered.
  182.     --------------------------------------------------------------------
  183.  
  184.  
  185.  
  186.    4.  INSTALLATION & USAGE
  187.  
  188.    In the descriptions below, {} enclose context variables, e.g., the number
  189.    {n}, whereas <> enclose alphanumeric characters or keys, e.g., the letter
  190.    <n>.
  191.  
  192.    The enclosed utility INSTALL.EXE may be used to copy the program files to
  193.    a user-defined drive and directory, and--if so desired--to add statements
  194.    to the file AUTOEXEC.BAT so that the program is loaded automatically upon
  195.    booting and to append the user-defined directory to the PATH statement.
  196.  
  197.  
  198.    MANUAL INSTALLATION
  199.  
  200.    Alternatively, to install the program manually, add the command
  201.  
  202.         {path}DAC [/SWITCH1 ... /SWITCHn] [;comments]
  203.  
  204.    to the AUTOEXEC.BAT file, if you wish to have the program installed after
  205.    booting the system, or simply enter this command from the DOS prompt when
  206.    you want to use the program.  If given, {path} must specify the drive and
  207.    subdirectory for the file DAC.EXE.
  208.  
  209.    Square brackets enclose optional command arguments; [/SWITCH1.../SWITCHn]
  210.    are program command switches, whereas [;comments] are comments that might
  211.    be useful to clarify batch file usage.
  212.  
  213.    If executed with a null argument (i.e., switches were not specified), the
  214.    program searches the DOS environment block for a variable with the format
  215.    DAC=/SWITCH1 ... /SWITCHn, to use these switches as program commands (see
  216.    switch EV below).
  217.  
  218.    If the execution command has null arguments, an environment variable does
  219.    not exist, and the resident is not yet installed, then the default (i.e.,
  220.    preselected) configuration is used for the installation.  If the resident
  221.    is already installed, and an environment variable does not exist, a null-
  222.    argument command has no other effects than updating the resident in terms
  223.    of the video system.  The default cases of the various switches are given
  224.    below.
  225.  
  226.    Once installed, the resident can be modified at any time by executing the
  227.    program with new parameters.  If other memory-resident programs were also
  228.    used, make sure all residents installed are 'well behaved' and pass along
  229.    the necessary interrupt data (see 'OPERATION REQUIREMENTS & CONFLICTS').
  230.  
  231.  
  232.    COMMAND SWITCHES
  233.  
  234.    These switches allow for the modification of the default (preselected) or
  235.    of an already selected resident configuration, or the execution of one of
  236.    the non-resident services provided by the program (e.g. display of a Help
  237.    panel, adjustment of display brightness, etc).
  238.  
  239.    The switches can be specified in any order, and they must be separated by
  240.    a space, tab, comma, or slash; a dash preceded by space may also be used.
  241.    They are not case sensitive, e.g., /EV = /Ev = /eV = /ev.  Invalid switch
  242.    specifications may result in an error message or in program cancellation.
  243.  
  244.    When parsing the command line, the program converts all switch separators
  245.    to slashes.  Switches consist of 2 letters; when a single letter would be
  246.    an unambiguous specification only the first switch character is required:
  247.    for instance, both /U and /UL are recognized as requests to uninstall the
  248.    resident from memory.
  249.  
  250.    Whereas some switches have a single status (e.g., uninstall the resident)
  251.    others may have more than one status (e.g., a on/off display toggle). The
  252.    program has built-in (default) values for some switches, values which are
  253.    used if a new value is not specified when installing the resident.  These
  254.    switch defaults are 
  255.  
  256.             /BD64/BF440/BN3/HC+/HK+/HKT6/TD+/TS+
  257.  
  258.    Other switch defaults are contigent on the current system status, such as
  259.    DOS country information (SC, TH, VS), video mode (VP) and video attribute
  260.    at cursor position (VA).
  261.  
  262.    The following switches are recognized:
  263.  
  264.      ---------------------------------------------------------------------
  265.        (*) Asterisks mark options not available in the unregistered copy
  266.      ---------------------------------------------------------------------
  267.  
  268.    SWITCH ?
  269.    ~~~~~~~~
  270.    This switch displays the Status/Usage/Help panels, which are described in
  271.    more detail in the section below.  If a VGA or EGA is the active adapter,
  272.    the program saves the contents of the palette registers prior to changing
  273.    the video attributes for its various displays. See section 'STATUS/USAGE/
  274.    HELP PANELS' below.
  275.  
  276.    EGA users:  The default MS-DOS palette attributes are restored if the EGA
  277.            BIOS fails to store data in the Parameter Save Area. Old EGAs
  278.            may store invalid data in this area, resulting in an improper
  279.            restoration of the video attributes (use the DOS command MODE
  280.            CO80 to restore the default attributes).
  281.  
  282.  
  283. *  SWITCH AT
  284.    ~~~~~~~~~
  285.    Alarm times are given as hour {h} and, optionally, minute {m}, and second
  286.    {s}.     Only one alarm may be active at any given time, and it occurs every
  287.    24 hours at the selected time.  Alarm services are BIOS mediated and need
  288.    a CMOS time/date chip.
  289.  
  290.     AT?           Display the current alarm status.
  291.  
  292.     AT+           (Re-)Enable alarm operation.
  293.  
  294.     AT-           Disable alarm operation; this is the default condition
  295.               if a switch argument is not specified.
  296.  
  297.     AThh[:mm:ss]  Alarm time using a 24-hour format, i.e. {hh}=0-23. The
  298.               use of {mm} and of {ss} is optional; if not specified,
  299.               a value of 0 is used.
  300.  
  301.     AThh[:mm:ss]x Alarm time using a 12-hour format, i.e. {hh}=1-12. The
  302.               use of {mm} and of {ss} is optional; if not specified,
  303.               a value of 0 is used. Use {x}=A[M] or P[M] to indicate
  304.                       ante or post meridian time.
  305.  
  306.    Defaults: /AT = /AT+;  AThh:mm = /AThh:mm:0; /AThh = /AThh:0:0; no switch
  307.              on installation = /AT-.
  308.  
  309.    NOTE   -----------------------------------------------------------------
  310.       The time separator <:> varies with DOS country information format
  311.       in use. The above examples assume USA country information format.
  312.       ------------------------------------------------------------------
  313.  
  314.  
  315. *  SWITCH BD
  316.    ~~~~~~~~~
  317.    Alarm bell duration.  Use BDn, where {n} is between 1 (shortest) and 128
  318.    (longest).  Defaults: /BL = /BL64; no switch on installation = /BL64.
  319.  
  320.  
  321. *  SWITCH BF
  322.    ~~~~~~~~~
  323.    Frequency or pitch of alarm bells in cycles/second (Hertz). Use BFn, where
  324.    {n} is between 25 Hz (low) and 5000 Hz (high).  Defaults: /BF = /BF440.
  325.  
  326.  
  327. *  SWITCH BN
  328.    ~~~~~~~~~
  329.    Number of alarm bells. Use BNn, in which {n} is between 1 and 8. Defaults:
  330.    /BN = /BN3; no switch on installation = /BN3.
  331.  
  332.  
  333. *  SWITCH EV
  334.    ~~~~~~~~~
  335.    When the _initial_ copy of COMMAND.COM is loaded at boot time, it creates
  336.    a block of memory that will contain the master or global DOS environment.
  337.    The environment of DOS consists of a number of text-based variables, each
  338.    variable consisting of a name and an associated string having the format:
  339.  
  340.               VARIABLE=string of characters
  341.  
  342.    in which the end of the string is marked by a zero byte.  The environment
  343.    contains a series of such variables, and the end of the environment block
  344.    itself is indicated by an additional zero byte.  These variables are used
  345.    to pass information to and from COMMAND.COM (or a DOS shell replacement),
  346.    batch files, and application programs, such as the PATH= and the COMSPEC=
  347.    variables.
  348.  
  349.    Switch EV creates or, if it already exists, updates the environment block
  350.    variable:
  351.              DAC=/SWITCH1/SWITCH2.../SWITCHn
  352.  
  353.    where /SWITCH1.../SWITCHn are the command switches to be implemented when
  354.    the program is executed from the DOS command line or a batch file without
  355.    any arguments.  Although switch EV itself is incorporated in the variable
  356.    as well, it is ignored when such variable is used to provide input to the
  357.    program.  (See 'ENVIRONMENT VARIABLE DAC' for more details.)
  358.  
  359.    No defaults.
  360.  
  361.  
  362.    SWITCH HK
  363.    ~~~~~~~~~
  364.    Hotkey combination to toggle display on and off.  The default combination
  365.    is <Left-Shift><Ctrl><T>.  The hotkey is also used for the date-at-cursor
  366.    stamp service provided by switch SC (see below).
  367.  
  368.     HK?     Permit selection of a new hotkey combination including
  369.         an alphanumeric key, and one or more of the shift keys
  370.         <Ctrl>, <Alt>, <left-Shift>, and <right-Shift>.
  371.  
  372.     HK+     Enable hotkey operation; this is the default condition
  373.         if a switch argument is not specified.
  374.  
  375.     HK-     Disable hotkey operation.  Can be reenabled with /HK+.
  376.  
  377.      *    HKxn    Select {xn} as the hotkey combination, in which {x} is
  378.         a alphanumeric character (0-9 or A-Z) only, and {n} is
  379.         a digit between 4 and 15 only.  This digit corresponds
  380.         to one of the following shifting keys or their sum:
  381.  
  382.             1 = <right-Shift>   --------------------------
  383.             2 = <left-Shift>     Values higher than 15 or
  384.             4 = <Ctrl>           lower than 4 are invalid
  385.             8 = <Alt>           --------------------------
  386.  
  387.    For obvious reasons, <Ctrl> or <Alt>, or both, must be part of a new hot-
  388.    key combination either in switch HK? or HKxn.  If a hotkey other than the
  389.    default combination is needed routinely, it may be useful to store in the
  390.    DOS environment the variable 'DAC=/HKxn' (see below).
  391.  
  392.    Defaults: /HK = /HK+; no switch on installation = /HK+ /HKT6.
  393.  
  394.  
  395. *  SWITCH LH
  396.    ~~~~~~~~~
  397.    Loads the resident in the Upper Memory Area (UMA), between addresses 640
  398.    KB and 1,024 KB of memory; this is the region below the 1-MB boundary of
  399.    the memory accessible by 086 CPUs, but above the 640-KB hardware barrier
  400.    of MS-DOS.  The switch requires an available upper memory block (UMB) of
  401.    about 1 KB, which is allocated by the program itself either via a direct
  402.    XMS request or, if MS-DOS controls UMB allocation (i.e. DOS 5+ linked to
  403.    the UMA through the command 'dos=umb' in the CONFIG.SYS file), via calls
  404.    to DOS. Allocation of UMBs requires the presence of an XMS manager (XMM)
  405.    supporting the UMB services 10h-11h of XMS 2+, and (if the XMM lacks the
  406.    capability of remapping memory) the presence of an UMB provider.
  407.  
  408.    SWITCH LHn
  409.  
  410.    A lower upper-memory limit for the UMB loading can also be requested via
  411.    switch LHn, in which {n} is a four-digit hexadecimal number between A000
  412.    (640 KB) and FF00 (1,020 KB), in order to avoid or select specific areas
  413.    of upper memory.
  414.  
  415.    Defaults:  Low-memory installation if any error is found during the UMB
  416.    loading; high-memory installation below lower-address limit if UMBs are
  417.    not available above such limit.
  418.  
  419.  
  420.    SWITCH QU
  421.    ~~~~~~~~~
  422.    Forces the resident to become quiescent until the next time the program is
  423.    executed, provided that neither switch QU nor ? is specified at such time.
  424.    No defaults.
  425.  
  426.  
  427.    SWITCH RC
  428.    ~~~~~~~~~
  429.    Resets the resident gate controlling the clock display at the DOS prompt,
  430.    in case a forcing of this display is desired.  No defaults.
  431.  
  432.  
  433. *  SWITCH SC
  434.    ~~~~~~~~~
  435.    Date stamp-at-cursor. Use SC to add a 170-byte module to the resident that
  436.    loads the keyboard buffer with the current date stamp (month day, year) if
  437.    the hotkey combination is pressed while the Scroll Lock is enganged (i.e.,
  438.    the <Scroll Lock> key is toggled on).
  439.  
  440.    The stamp is displayed on the screen whenever the next request to read the
  441.    keyboard via interrupt 16h is issued, and the stamp format is based on the
  442.    current country DOS information data (mm/dd/yyyy, USA; dd/mm/yyyy, Europe;
  443.    yyyy/mm/dd, Japan).  Switch SC is ignored after the resident is installed.
  444.  
  445.    No defaults.
  446.  
  447.  
  448.    SWITCH SH
  449.    ~~~~~~~~~
  450.    Display an 8-character hexadecimal stamp (used by DOS for stamping files),
  451.    which has a time resolution of 2 seconds or more.  No defaults.
  452.  
  453.  
  454.    SWITCH SJ
  455.    ~~~~~~~~~
  456.    Display the current date using the Julian format (number of days since the
  457.    1st of January, year). A leap year is defined as a year which is divisible
  458.    by 4 but not by 100, or is divisible by 400.  No defaults.
  459.  
  460.  
  461.    SWITCH ST
  462.    ~~~~~~~~~
  463.    Display the current Date/Time stamp (read from the system timer count area
  464.    of the BIOS).  Uses USA country information format.  No defaults.
  465.  
  466.  
  467. *  SWITCH SW
  468.    ~~~~~~~~~
  469.    Stopwatch to measure execution times. Use SW"[path]NAME.EXT [options]", in
  470.    which <EXT>=COM or EXE.  The file specification must be enclosed by double
  471.    quotes.  To measure batch file or DOS internal command execution time, use
  472.    SW"[path]COMMAND.COM /C {NAME.BAT} or {DOS command}".
  473.  
  474.    Proper timing operation needs a timer chip fully compatible with the 8253/
  475.    8254 timer chip of the IBM PC/AT standard.  dAC checks for a Micro Channel
  476.    architecture (PS/2 machines) and adjusts its timing operation accordingly.
  477.    With machines not compatible with the 8253 chip, use switch SW2 instead of
  478.    SW if timings were to degrade DOS time counts.  No defaults.
  479.  
  480.  
  481.    SWITCH TD
  482.    ~~~~~~~~~
  483.    Toggle clock display on and off from the DOS command line; it also permits
  484.    to display of the clock outside the normal DOS-prompt display restriction.
  485.  
  486.     TD+     Enable clock display.
  487.  
  488.     TD-     Disable clock display.
  489.  
  490.    Defaults: /TD = /TD+; no switch on installation = /TD+.
  491.  
  492.  
  493.    SWITCH TH
  494.    ~~~~~~~~~
  495.    Toggle clock display between 12-hour (1-12) and 24-hour (0-23) time format.
  496.  
  497.     TH12     Use a 12-hour format time display.
  498.  
  499.     TH24     Use a 24-hour format time display.
  500.  
  501.    Default: No switch on installation = Current country information data from
  502.    the KEYBxx keyboard driver, if one is loaded, or the default country code.
  503.  
  504.  
  505.    SWITCH TS
  506.    ~~~~~~~~~
  507.    Toggle on and off the display of seconds.
  508.  
  509.     TS+      Use <hour:minute:second> time format display.
  510.  
  511.     TS-      Use <hour:minute> time format display.
  512.  
  513.    Defaults: /TS = /TS+; no switch on installation = /TS+.
  514.  
  515.  
  516.    SWITCH UL
  517.    ~~~~~~~~~
  518.    Uninstalls the resident code from memory.  This request is disregarded if
  519.    the address of any of the interrupts intercepted by the resident has been
  520.    modified since the program was installed.  The revectoring indicates that
  521.    another resident has subsequently hooked the same interrupt(s). Thus, the
  522.    program cannot be uninstalled, because this would leave such interrupt(s)
  523.    pointing to empty memory, and the program would then crash.
  524.  
  525.    The program should be uninstalled only if it is the last resident to have
  526.    been installed. In practice, however, it can also be uninstalled when any
  527.    subsequently installed resident intercepts different interrupts; although
  528.    this increases fragmentation of memory, the resulting "hole" is innocuous
  529.    and can be used by DOS for other purposes (e.g., an environment block).
  530.  
  531.    No defaults.
  532.  
  533.  
  534.    SWITCH VA
  535.    ~~~~~~~~~
  536.    Video attributes of the clock display.
  537.  
  538.     VA?     Show current video display attributes and allow the selection
  539.         of new attributes for the display in an interactive manner.
  540.  
  541.     VAhh    Select new video display attributes from the DOS command line
  542.         where {hh} is a 2-digit hexadecimal number between 00 and FF,
  543.         representing the attribute of the background (1st digit), and
  544.         the attribute of the foreground text (2nd digit):
  545.  
  546.             0 - Black    8 - Gray
  547.             1 - Blue    9 - Intense Blue
  548.             2 - Green    A - Intense Green
  549.             3 - Cyan    B - Intense Cyan
  550.             4 - Red        C - Intense Red
  551.             5 - Magenta    D - Intense Magenta
  552.             6 - Brown    E - Yellow
  553.             7 - White    F - Intense White
  554.  
  555.                 NOTE   ------------------------------------------------------
  556.                         A background video attribute of 8 or higher normally
  557.                         produces a blinking text display.
  558.                        ------------------------------------------------------
  559.  
  560.    Default: No switch on installation = Screen attribute at cursor position.
  561.  
  562.  
  563.    SWITCH VP
  564.    ~~~~~~~~~
  565.    Video coordinates of the clock display.
  566.  
  567.     VP?     Show the current screen coordinate of the _last_ character of
  568.                 the clock display.  Variations of display format (e.g., TH or
  569.                 TS) do not affect the position of the last character.
  570.  
  571.     VPc:r   Select a new display coordinate from the DOS command line, in
  572.         which {c} is the column and <r> is the row within the current
  573.         video mode. The colon between coordinates c:r is mandatory.
  574.  
  575.    Default:  No switch on installation = Upper right corner of the screen, as
  576.    based on the current video mode (either standard BIOS, e.g. 80:01, or VESA
  577.    video mode, e.g. 132:01).
  578.  
  579.  
  580. *  SWITCH VS
  581.    ~~~~~~~~~
  582.    Time units separator. Use /VSx to define the character {x} separating time
  583.    units in the clock display.
  584.  
  585.    Default: No switch on installation = Current country information data from
  586.    the KEYBxx keyboard driver, if one is loaded, or the default country code.
  587.  
  588.  
  589.  
  590.    COMMENTS
  591.  
  592.    The comments may be added in the command line after the desired switches
  593.    and must be preceded by a semicolon.  Such comments, which may be useful
  594.    in clarifying batch files, are ignored by the program.
  595.  
  596.    Do not use the redirection and pipe characters in the comments since DOS
  597.    will attempt to implement the implied redirection or pipe request.
  598.  
  599.  
  600.  
  601.    STATUS/USAGE/HELP PANELS
  602.  
  603.    Executing the program with switch /? selected allows access to the Status/
  604.    Usage and Help panels. (If a Mouse pointing device driver, compatible with
  605.    the Microsoft Mouse driver version 6.0 or higher is loaded and active, all
  606.    of the services provided by these panels can also be activated by pointing
  607.    the mouse to specific areas of the screen and clicking either button.  The
  608.    mouse driver state is saved prior to the display, to be restored later, if
  609.    sufficient memory is available for the panel display.)
  610.  
  611.    The STATUS/USAGE panel, which is shown first, describes status information
  612.    for the resident and its services.  If the program has not been installed,
  613.    pressing key <F3> or <D> shows the default installation parameters.  If it
  614.    is installed, pressing key <F3> or <T> sets the clock alarm to the current
  615.    time for testing purposes.
  616.  
  617.    The USAGE subpanel shows a menu for the command switches: To cycle between
  618.    the main and the auxiliary menu, press key <F2> or <M>, or click the mouse
  619.    upon the screen button labelled <Menu>.  If the resident is installed, the
  620.    status of some 'on/off' command switches is displayed by '+' or '-' before
  621.    a given menu entry.
  622.  
  623.    Press key <F7>, or <X>, or click the mouse upon the screen button labelled
  624.    <Exit> to return to the DOS-prompt command line.
  625.  
  626.    The HELP panel provides a summary description of the program and commands,
  627.    and is displayed if key <F1> or <H> is pressed from the Status/Usage panel
  628.    (or if the mouse is clicked upon the screen button labelled <Help>). Press
  629.    the keypad cursor keys (Home/End, PgUp/PgDn, arrows) to scroll the display
  630.    down or up or the key <S> to scroll in a closed loop; alternatively, click
  631.    the mouse upon the Up/Down arrows at the top right corner of the screen to
  632.    scroll.  Press key <F1> to skip the brief program summary and position the
  633.    text on the Usage section directly.
  634.  
  635.    A beating icon to the left of the preceding USAGE panel controls the speed
  636.    of screen scrolling of the HELP panel via key <S> or the mouse arrows.  By
  637.    positioning the mouse pointer over the beating heart and clicking the left
  638.    or right mouse button, the rate of scrolling can be respectively increased
  639.    or decreased; the scrolling rate can also be changed by clicking the mouse
  640.    on the icon that becomes visible on the top line of the HELP panel (if the
  641.    mouse driver is installed).
  642.  
  643.    Press key <Esc> or <F2>, or click the mouse upon the rightmost icon at the
  644.    top left corner of the screen, to return to the Status/Usage panel.  Press
  645.    key <F7> or <X>, or click the mouse upon the leftmost icon, to exit to the
  646.    DOS-prompt command line.
  647.  
  648.  
  649.  
  650.    THE ENVIRONMENT VARIABLE DAC
  651.  
  652.    When the program is executed from the command line of DOS or a batch file
  653.    without an argument, it searches the DOS environment block for a variable
  654.    named 'DAC' having the format:
  655.  
  656.             DAC=/SWITCH1/SWITCH2 .... /SWITCHn
  657.  
  658.    Up to 128 characters are allowed after the equal sign. This string can be
  659.    incorporated to the environment block via the 'SET' command of DOS or via
  660.    switch EV of this program (see above).
  661.  
  662.    The variable can be used to specify a program default configuration which
  663.    can be restored just by executing the program without an argument after a
  664.    temporary change of parameters.
  665.  
  666.    While the SET command modifies the current DOS environment block, whether
  667.    it is the global or a local one, switch EV only modifies the global block
  668.    (even when the program is executed via a secondary COMMAND.COM, as in the
  669.    case of shelling out to DOS from an application).   Notice that the local
  670.    environment block is only a copy of the global block and lacks sufficient
  671.    room to increase significantly the length of a variable, and that changes
  672.    made to a local environment are not inherited by the global one.
  673.  
  674.    When searching for the environment variable, the program uses the current
  675.    DOS environment block, whether it is the global or a local one.
  676.  
  677.  
  678.  
  679.    5. INSTALLATION IN UPPER MEMORY
  680.  
  681.    This section describes in more detail aspects of the active (i.e., self-
  682.    loading) or passive (e.g. via DOS LOADHIGH) installation of the resident
  683.    in the upper memory region.
  684.  
  685.  
  686.    UMA SELF-LOADING
  687.  
  688.    The utility can self-install the resident in the upper memory area (UMA),
  689.    that is, RAM addresses between 640 KB and 1,024 KB, via switch LH (or its
  690.    subfunction LHn).
  691.  
  692.    The allocation of UMA blocks (UMBs) is arbitrated by an XMS manager (XMM)
  693.    version 2.0 or higher; the XMM must be installed prior to the UMB-loading
  694.    of the resident.  Allocation also requires the remapping of UMA addresses
  695.    by a UMB provider, when such a task is not implemented by the XMM itself.
  696.  
  697.    The XMM HIMEM.SYS and the UMB-provider EMM386.EXE are distributed with MS
  698.    DOS 5+.  The allocation of UMBs is controlled by DOS when these 2 drivers
  699.    are installed, and the command 'dos=umb' is added to the CONFIG.SYS file.
  700.    With DR-DOS 6+, UMB remapping and XMS support are provided by EMM386.SYS.
  701.    Other 386-specific memory managers, of course, also provide UMB remapping
  702.    and XMS support.  All XMMs require MS-DOS version 3 or later.
  703.  
  704.    Switch LHn, where A000 ≤ n ≤ FFFF (hexadecimal), allows the specification
  705.    of a minimum upper-memory limit for the UMB to avoid UMA regions having a
  706.    very slow access time (or to preserve regions with a fast access time for
  707.    other utilities that require faster times, such as a disk cache or screen
  708.    accelerator), or to avoid fragmentation of the UMA when UMB allocation is
  709.    not controlled by MS-DOS 5+, but by the XMM itself. The fragmentation may
  710.    occur when the XMM allocates blocks on a first-fit basis, i.e., the first
  711.    available UMB having the lowest UMA address is allocated, irrespective of
  712.    whether or not a (smaller) block matching the requested size is available
  713.    at a higher UMA address.  Unless the size of the available UMBs increases
  714.    with increasing memory address, first-fit allocation of a small UMB leads
  715.    to the breaking of large UMA blocks into smaller ones, thus hampering the
  716.    UMB installation of larger residents.
  717.  
  718.    If MS-DOS 5+ controls UMB allocation, the program enforces the allocation
  719.    of the resident block on a best-fit basis when {n} is not specified, that
  720.    is, all available blocks are searched (by DOS), and the one matching most
  721.    closely the size requested is allocated.
  722.  
  723.    When DOS controls UMB allocation and {n} is specified, UMBs are allocated
  724.    on a first-fit basis.  While this may contribute to UMA fragmentation, it
  725.    allows for the checking of a minimum memory limit in those cases in which
  726.    the selection or avoidance of a specific UMA region is more important.
  727.  
  728.    Hence, compared to the upper-memory loading provided by the LH command of
  729.    MS-DOS 5+, the HILOAD command of DR-DOS 5+, or a similar service provided
  730.    by other memory managers, self-loading into a UMB has several advantages,
  731.    including: (1) it does not require an initial free UMB of the size of the
  732.    entire program (as opposed to the size of its resident only), (2) it does
  733.    allow user control on the selection of the upper-memory block, and (3) it
  734.    can help reduce UMA fragmentation.
  735.  
  736.    NOTE  -------------------------------------------------------------------
  737.      The address and size of available UMBs can be obtained with MEM.EXE
  738.      (when DOS controls UMB allocation) or via the memory manager itself
  739.      (when the allocation is controlled by 386-specific memory managers.
  740.      In either case, such data can also be obtained with UMAX.EXE, a UMA
  741.      mapping utility that is distributed by the author.
  742.      -------------------------------------------------------------------
  743.  
  744.  
  745.    UMA LOADING VIA MEMORY MANAGERS, DR-DOS 5+, or MS-DOS 5+
  746.  
  747.    The resident can also be installed in the UMA via a 386-memory manager or
  748.    DR-DOS 5+/MS-DOS 5+ commands (e.g., HILOAD, LH, etc), provided that there
  749.    is a sufficiently large, free UMB for the actual size of the entire file,
  750.    and any for additional memory that may be required by the loading service
  751.    itself.
  752.  
  753.    Please note that, to minimize disk storage, the program is distributed as
  754.    a compressed EXE file that expands on execution by a factor of 2 or less.
  755.    Thus, the difference between the actual size upon loading and the nominal
  756.    directory size may create conflicts with UMA-loading services that do not
  757.    measure actual size: If the available upper memory were smaller than that
  758.    required by the decompressed file but larger than the nominal (directory)
  759.    size, such service would attempt to load the compressed file.  Of course,
  760.    the subsequent file decompression would overwrite the adjacent memory and
  761.    likely crash the memory manager or DOS!
  762.  
  763.    When attempting to load the resident in a UMB via a memory manager or DOS
  764.    5+, do NOT request in the same command line switches that result in panel
  765.    displays.  These displays require an additional 8,000 bytes of *adjacent*
  766.    free memory, and the free RAM measuring procedure used by the program can
  767.    be negated by UMA-loading services that do not update the program segment
  768.    prefix (PSP) of the program being loaded. Such switches are VA?, HK?, and
  769.    /?.
  770.  
  771.  
  772.    IDENTIFICATION IN MEMORY MAPS
  773.  
  774.    If the resident has been loaded in lower conventional memory, the program
  775.    can be identified by name in usage maps yielded by various memory mapping
  776.    utilities.  Although the program sheds its own copy of the environment at
  777.    installation time (to minimize the resident size), the name
  778.  
  779.                 dAC x.yy.z
  780.  
  781.    will appear in the command line listing for the resident, irrespective of
  782.    the actual content of the DOS command line at the time of loading; x.yy.z
  783.    are the ASCII major.minor.revision version numbers, e.g., 2.30.0.
  784.  
  785.    However, when UMB loading is mediated by the XMS directly (e.g., extended
  786.    memory manager and DOS versions 2-4, or MS-DOS 5+ not linked to the upper
  787.    memory) and the resident is selfloaded via switch LH, many memory mapping
  788.    programs do not list the allocated block, or lump it with other allocated
  789.    blocks, or fail to reveal the name of the resident.
  790.  
  791.    If the UMB allocation is controlled by MS-DOS 5+, the UMB resident can be
  792.    identified with some mapping utilities (e.g., MEM.EXE of MS-DOS) although
  793.    it is listed as "Data" instead of "Program."
  794.  
  795.  
  796.  
  797.    6.  TECHNICAL INFORMATION
  798.  
  799.    INTERRUPTS
  800.  
  801.    Whenever certain conditions occur, either within a program or the system,
  802.    it becomes necessary for the processor to interrupt its current operation
  803.    and execute one of a group of special routines.  The action that triggers
  804.    the execution of such a routine is referred to as an interrupt; there are
  805.    internal interrupts, in response to a state of the CPU or an instruction,
  806.    and external interrupts, caused by signals sent to the CPU from elsewhere
  807.    in the system.
  808.  
  809.    When the program is waiting for keyboard (or mouse) user input during its
  810.    Status/Usage/Help display, it invokes repeatedly the 'idle' interrupts of
  811.    DOS: INT 28h and, if running under MS-DOS 5+, function 1680h of INT 2Fh,
  812.    if this function indicates that it can process program suspension.
  813.  
  814.    INT 28h permits potential background activation of (some) other residents
  815.    while INT 2Fh/1680h permits MS-DOS 5+ to suspend the program temporarily,
  816.    and transfer control to another program.
  817.  
  818.    The program resident intercepts the following interrupts:
  819.  
  820.         INT 09h - Hardware Keyboard
  821.         INT 16h - BIOS Keyboard
  822.         INT 10h - BIOS Video
  823.         INT 1Ch - BIOS System Timer
  824.         INT 21h - DOS System Services
  825.         INT 2Fh - DOS Multiplex Services
  826.  
  827.    The resident monitors interrupt 21h and 2Fh to detect when DOS is waiting
  828.    to read the command-line user input, i.e., if the foreground operation is
  829.    at the DOS prompt, to open or close the clock display gate. The interrupt
  830.    thus gating the clock display is identified on the Stats/Usage panel.
  831.  
  832.    Interrupt 21h is used to toggle the clock display for MS-DOS, PC-DOS, and
  833.    MS-based OEM DOSes version 4 or earlier, and DR-DOS version 6 or earlier.
  834.  
  835.    For MS-DOS and PC-DOS version 5 or later, interrupt 2Fh is used if DOSKEY
  836.    or any DOS command-line editor supporting function 4810h of interrupt 2Fh
  837.    ('Read Command Line' function of DOSKEY) is installed; else interrupt 21h
  838.    is used.  See OPERATION REQUIREMENTS & CONFLICTS below when using DOS 5+.
  839.  
  840.    Although there are some applications that use the same interrupt services
  841.    to receive user input for their operations as DOS, the dCA clock will not
  842.    be displayed during these applications unless the buffer input parameters
  843.    match those of DOS at its command line.
  844.  
  845.  
  846.    INSTALLATION CHECK
  847.  
  848.    Interrupt 2Fh is also used by this program to determine if its resident is
  849.    already installed via the following INT-2Fh call,
  850.  
  851.        Registers at call:
  852.                                                                              
  853.                 BX = 'dA'    API signature
  854.                 AH = 'C'    API signature
  855.                 AL = 0        Installation check request
  856.  
  857.        Return registers if successful:
  858.  
  859.                 AX = ES        Segment    address of paragraph aligned TSR
  860.                 BX = NOT 'dA'    API countersignature
  861.     and
  862.         ES:[81h] ->    Verification signature 'dAC x.yy.z' where
  863.                 x.yy.z are the ASCII major.minor.revision
  864.                 version numbers.
  865.  
  866.    DOS ERRORLEVELS
  867.  
  868.    Upon completion, the program passes an errorlevel value which can be used
  869.    to check (via ERRORLEVEL commands in a batch file) the outcome of program
  870.    execution.  The following errorlevels may be passed:
  871.  
  872.          Value   Nature of Error
  873.          -----   ------------------------------------
  874.            255   Cyclical redundancy check failure
  875.            255   CPU type cannot execute 286/386/486 version
  876.            255   Invalid DOS version
  877.  
  878.             64   XMM not installed or XMS error in UMB load
  879.             32   Error in update of environment variable
  880.             16   Invalid hotkey combination
  881.              8   Unknown video adapter
  882.              4   Unable to uninstall resident
  883.              2   Invalid switch request
  884.              1   User <CTRL-BREAK> keypress
  885.              0   Successful execution
  886.  
  887.  
  888.    Some conditions generating errorlevels 1 through 128 may be additive, and
  889.    the resulting error value may represent more than a single error.
  890.  
  891.  
  892.    CMOS STORAGE LAYOUT
  893.  
  894.    The 64-byte, nonvolatile CMOS memory (Motorola MC146818 chip) of AT-class
  895.    and compatible machines contains information on the current time and date
  896.    as well as hardware configuration.  Addresses 16 through 32 are protected
  897.    by a 16-bit checksum.
  898.  
  899.     RTC registers:            Other registers:
  900.  
  901.     0     Seconds (BCD)                14     Diagnostics status byte
  902.     1     Alarm on seconds (BCD)       15     Shutdown status byte
  903.     2     Minutes (BCD)                16     Diskette drive type
  904.     3     Alarm on minutes (BCD)       17     Reserved
  905.     4     Hours (BCD)                  18     Hard disk drive type
  906.     5     Alarm on hours (BCD)         19     Reserved
  907.     6     Day of week (Sunday=0)       20     Equipment byte
  908.     7     Day of month (BCD)           21-22  Base memory size
  909.     8     Month (BCD)                  23-24  Extended RAM above 1MB
  910.     9     Last 2 digits year (BCD)     25     Disk 1 type (if > 15)
  911.                        26     Disk 2 type (if > 15)
  912.     10     RTC status register A       27-32  Reserved
  913.     11     RTC status register B       33-45  Reserved
  914.     12     RTC status register C       46-47  Checksum CMOS addr 16h-32
  915.     13     RTC status register D       48-49  Extended memory above 1MB
  916.                        50     Current century (BCD)
  917.                        51     Miscellaneous information
  918.                        52-63  Reserved
  919.  
  920.  
  921.    7.  OPERATION REQUIREMENTS & CONFLICTS
  922.  
  923.    The resident will not operate properly if access to the interrupts listed
  924.    above is denied by another program or resident.  This can occur with some
  925.    ill-behaved programs which take over the interrupts and fail to chain the
  926.    information to other utilities tapping the same interrupts (see TECHNICAL
  927.    INFORMATION).
  928.  
  929.    NOTE    --------------------------------------------------------------------
  930.     dAC must be installed AFTER installing DOSKEY or any similar command
  931.     line editor, as otherwise the clock will not be displayed during the
  932.     DOS prompt unless it is toggled on via the dAC hotkey (in which case
  933.     the clock display will not limited to the DOS-prompt).
  934.     --------------------------------------------------------------------
  935.  
  936.    This program is not compatible with Microsft WINDOWS.  Through monitoring
  937.    of the video mode, the time display and the hotkey access of the resident
  938.    become inactive when graphics-mode based programs, such as WINDOWS, start
  939.    up and become active again when text mode is restored.
  940.  
  941.    If you encounter conflicts with a given text-mode foreground application,
  942.    these may be avoided by loading the application via a batch file with the
  943.    following commands:
  944.  
  945.         @Echo Off
  946.         ...
  947.         [path]DAC /TD-/HK-/QU    ; clock inactive
  948.         <application>
  949.         [path]DAC /TD+/HK+    ; clock active
  950.         ...
  951.  
  952.  
  953.  
  954.    8. COPYRIGHT & LICENSE INFORMATION
  955.  
  956.    This documentation, programs, and other files distributed in this software
  957.    package (the "Software")  are the copyrighted property of FM de Monasterio
  958.    (the "Author"), who provides the Software and licenses its use. All rights
  959.    are reserved.
  960.  
  961.    The Software is not sold.  A license fee is required to use this Software.
  962.    This license does not transfer to you either the ownership of or the title
  963.    to the Software, which remain the property of the Author.  A form required
  964.    to license the Software is provided in the enclosed file DAC.REG.
  965.  
  966.  
  967.    SINGLE USER LICENSE.  Grants you use of this Software in a single computer
  968.    at a time; the Software may be transferred to another computer, as long as
  969.    it is used only in 1 computer at any time; under the license, the Software
  970.    may NOT be installed on a network server.
  971.  
  972.    SITE/15-PCs LICENSE.  Grants you use of this Software in a sigle site or a
  973.    set of sites, as long as the Software is not used in more than 15 machines
  974.    at a time, and that such machines are located exclusively within the site.
  975.    Licenses for more machines are available at discounted prices.
  976.  
  977.    SOFTWARE BUNDLING LICENSE.  Please write to the Author.
  978.  
  979.    REFUNDS POLICY.  If a problem notified within ninety (90) days of shipping
  980.    of the registered copy cannot be solved, the registration fee (but not the
  981.    shipping costs) will be refunded upon receiving a written request with the
  982.    original diskette(s) enclosed.
  983.  
  984.    UPGRADE POLICY.  Program upgrades are limited to licensed users.  Upgrades
  985.    within the same major version (e.g. release 4.00 through 4.99) are free of
  986.    charge when a self-addressed, stamped, 5.25" diskette mailer with a 360-KB
  987.    diskette is included with the request. Other upgrades are charged half the
  988.    (single-user/site) registration fee.  See the enclosed file DAC.UPG.
  989.  
  990.  
  991.    U.S. GOVERNMENT INFORMATION
  992.  
  993.    The Software is Commercial Computer Software under the Federal Acquisition
  994.    Regulations of the U.S. government and the Agency Supplements to them. The
  995.    Software is provided to the Federal Government and its agencies only under
  996.    the Restricted Rights Provisions of the above noted regulations applicable
  997.    to commercial software developed at private expense, and not in the public
  998.    domain. The use, duplication, or disclosure of the Software by the Federal
  999.    Government or its agencies is subject to the restrictions set forth in the
  1000.    subdivision (c.1.ii) of the Rights in Technical Data and Computer Software
  1001.    clause at DFARS 252.227-7013 (October 1988) and FAR 52.227-19 (June 1987).
  1002.  
  1003.  
  1004.    9.  DISTRIBUTION INFORMATION
  1005.  
  1006.    You may distribute the Software, but you are specifically prohibited from:
  1007.  
  1008.     - Charging fees or asking donations in exchange of or payment
  1009.       for copies of this Software.
  1010.  
  1011.     - Distributing this Software with commercial products without
  1012.       the written, express permission in advance from the author.
  1013.  
  1014.     - Distributing this Software via a for-profit organization or
  1015.       group, either alone or with other software.
  1016.  
  1017.     - Changing any of the contents of this Software including the
  1018.       copyright notice and license information.
  1019.  
  1020.    You may not disassemble or otherwise reverse engineer the Software.  Other
  1021.    uses of the Software are prohibited without a written authorization signed
  1022.    by the Author.
  1023.  
  1024.    Latest program releases may be found at the Information Exchange BBS (703)
  1025.    836-0748, as a compressed archive file.
  1026.  
  1027.  
  1028.    WARRANTY DISCLAIMER FOR UNREGISTERED COPIES
  1029.  
  1030.    The information contained in the documentation for the Software is subject
  1031.    to change without notice.
  1032.  
  1033.    The Author cannot and does not warrant that any functions contained in the
  1034.    Software will meet your requirements, or that its operations will be error
  1035.    free.  The entire risk as to the Software performance or quality, or both,
  1036.    is solely with the user and not the Author.  You assume responsibility for
  1037.    the selection of the Software to achieve your intended results and for the
  1038.    installation, use, and results obtained from the Software.
  1039.  
  1040.    The Author makes no warranty, either implied or expressed, including with-
  1041.    out limitation any warranty with respect to this Software documented here,
  1042.    its quality, performance, or fitness for a particular purpose. In no event
  1043.    shall the Author be liable to you for damages, whether direct or indirect,
  1044.    incidental, special, or consequential arising out the use of or any defect
  1045.    in the Software, even if the Author has been advised of the possibility of
  1046.    such damages, or for any claim by any other party.
  1047.  
  1048.    All other warranties of any kind, either express or implied, including but
  1049.    not limited to the implied warranties of merchantability and fitness for a
  1050.    particular purpose, are expressly excluded.
  1051.  
  1052.    By using the Software, you acknowledge (1) to have read and understood all
  1053.    parts of this document and (2) to have agreed with and accepted all of its
  1054.    terms and provisions without any reservation.
  1055.  
  1056.    For information on the terms of the Limited Warranty for licensed Software
  1057.    copies or any other information on this program, please write to:
  1058.  
  1059.                 FM de Monasterio
  1060.                 P.O. Box 219
  1061.                 Cabin John, MD 20818-0219
  1062.                 USA
  1063.  
  1064.     ┌─────────────────────────────────────────────────────────────┐
  1065.     │ Trademarked names are the property of the respective owners │
  1066.     └─────────────────────────────────────────────────────────────┘
  1067. [end]
  1068.